InputStream এবং OutputStream কপি করা

Java Technologies - অ্যাপাচি কমন্স আইও (Apache Common IO) IOUtils ক্লাসের ব্যবহার |
170
170

Apache Commons IO লাইব্রেরি InputStream এবং OutputStream এর মধ্যে ডেটা কপি করার জন্য সহজ এবং কার্যকরী মেথড সরবরাহ করে। এতে স্ট্রিম থেকে ডেটা পড়া এবং লেখা অনেক সহজ হয়ে ওঠে, এবং পারফরম্যান্সের দিক থেকে এটি স্ট্যান্ডার্ড Java API এর তুলনায় অনেক দ্রুত কাজ করে।

IOUtils ক্লাসটি একটি খুবই গুরুত্বপূর্ণ ক্লাস যা InputStream থেকে OutputStream এ ডেটা কপি করার জন্য ব্যবহার করা হয়। এটি এমনকি বড় ডেটা সেটের ক্ষেত্রে পারফরম্যান্স অপটিমাইজেশনও করে।

IOUtils ব্যবহার করে InputStream এবং OutputStream কপি করা

Apache Commons IO লাইব্রেরি IOUtils ক্লাসের copy() মেথডের মাধ্যমে স্ট্রিম থেকে স্ট্রিমে ডেটা কপি করতে সহজে কাজ করতে দেয়।

IOUtils.copy() মেথড

এই মেথডটি একটি InputStream থেকে ডেটা পড়তে থাকে এবং তা একটি OutputStream এ লিখে দেয়। এটি কার্যকরীভাবে ডেটার কপি তৈরি করে, এবং বড় ফাইল বা স্ট্রিমের জন্য খুবই কার্যকরী।

InputStream থেকে OutputStream এ কপি করা উদাহরণ

import org.apache.commons.io.IOUtils;

import java.io.*;

public class StreamCopyExample {
    public static void main(String[] args) {
        InputStream inputStream = null;
        OutputStream outputStream = null;

        try {
            // ফাইলের InputStream তৈরি
            inputStream = new FileInputStream("source.txt");

            // OutputStream তৈরি
            outputStream = new FileOutputStream("destination.txt");

            // InputStream থেকে OutputStream এ কপি করা
            IOUtils.copy(inputStream, outputStream);

            System.out.println("ডেটা কপি করা হয়েছে!");

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                // স্ট্রিম বন্ধ করা
                if (inputStream != null) inputStream.close();
                if (outputStream != null) outputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

ব্যাখ্যা:

  • FileInputStream: এটি একটি InputStream যা ফাইল থেকে ডেটা পড়ে।
  • FileOutputStream: এটি একটি OutputStream যা ফাইলের মধ্যে ডেটা লেখে।
  • IOUtils.copy(inputStream, outputStream): এই মেথডটি InputStream থেকে OutputStream এ ডেটা কপি করে।

Output:

ডেটা কপি করা হয়েছে!

কপি করার সময় বাফার ব্যবহার

এখন, বড় ডেটা সেট বা ফাইল কপি করার ক্ষেত্রে, পারফরম্যান্স উন্নত করতে IOUtils.copy() মেথড একটি buffer ব্যবহার করতে পারে। এটি ফাইল বা ডেটা স্ট্রিমের কার্যকারিতা বাড়িয়ে দেয়।

Buffered InputStream এবং OutputStream ব্যবহার

import org.apache.commons.io.IOUtils;

import java.io.*;

public class BufferedStreamCopyExample {
    public static void main(String[] args) {
        InputStream inputStream = null;
        OutputStream outputStream = null;

        try {
            // BufferedInputStream তৈরি
            inputStream = new BufferedInputStream(new FileInputStream("source.txt"));

            // BufferedOutputStream তৈরি
            outputStream = new BufferedOutputStream(new FileOutputStream("destination.txt"));

            // BufferedInputStream থেকে BufferedOutputStream এ কপি করা
            IOUtils.copy(inputStream, outputStream);

            System.out.println("ডেটা কপি করা হয়েছে!");

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                // স্ট্রিম বন্ধ করা
                if (inputStream != null) inputStream.close();
                if (outputStream != null) outputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

ব্যাখ্যা:

  • এখানে BufferedInputStream এবং BufferedOutputStream ব্যবহার করা হয়েছে। এই স্ট্রিমগুলি IOUtils.copy() মেথডের সাথে কাজ করার সময় buffered I/O সুবিধা প্রদান করে, যা বড় ডেটা সেটের জন্য পারফরম্যান্স উন্নত করে।

IOUtils.copyLarge() মেথড

যদি আপনার কাছে খুব বড় ডেটা সেট থাকে এবং আপনি স্ট্রিম কপি করার সময় large file হ্যান্ডলিং এর জন্য আরও উন্নত পারফরম্যান্স চান, তাহলে IOUtils.copyLarge() মেথড ব্যবহার করতে পারেন। এটি InputStream থেকে OutputStream এ ডেটা কপি করার সময় বড় ডেটার ক্ষেত্রে আরো কার্যকরী এবং কার্যক্ষম।

IOUtils.copyLarge() উদাহরণ

import org.apache.commons.io.IOUtils;

import java.io.*;

public class LargeFileCopyExample {
    public static void main(String[] args) {
        InputStream inputStream = null;
        OutputStream outputStream = null;

        try {
            // বড় ফাইলের InputStream
            inputStream = new FileInputStream("largeSourceFile.txt");

            // OutputStream
            outputStream = new FileOutputStream("largeDestinationFile.txt");

            // Copy large files
            IOUtils.copyLarge(inputStream, outputStream);

            System.out.println("বড় ফাইল কপি করা হয়েছে!");

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (inputStream != null) inputStream.close();
                if (outputStream != null) outputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

ব্যাখ্যা:

  • IOUtils.copyLarge() মেথডটি InputStream থেকে OutputStream এ বড় ফাইল কপি করার জন্য ব্যবহৃত হয়। এটি ডেটা স্ট্রিম কপি করার সময় বড় ফাইল বা বড় ডেটা সেটের জন্য আরও ভাল পারফরম্যান্স প্রদান করে।

Apache Commons IO লাইব্রেরি InputStream থেকে OutputStream এ ডেটা কপি করার জন্য খুবই সহজ এবং কার্যকরী মেথড সরবরাহ করে। IOUtils.copy(), IOUtils.copyLarge(), এবং buffered streams ব্যবহার করে আপনি সহজেই ডেটা কপি করতে পারেন, এবং যদি বড় ফাইল বা ডেটা স্ট্রিমের সাথে কাজ করেন তবে আপনার পারফরম্যান্স আরো উন্নত হবে। Apache Commons IO ফাইল এবং স্ট্রিম ম্যানিপুলেশনকে অনেক সহজ করে তোলে, যা জাভা ডেভেলপারদের জন্য একটি গুরুত্বপূর্ণ টুল।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion